package com.admin.mapper;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;

import com.admin.domain.AdminRoleDO;
import com.admin.vo.system.AdminRoleVO;

/**
 * 管理员角色mapper
 * 
 * @author ZY
 * @date 2018/12/06
 */
public interface AdminRoleMapper extends BaseMapper<AdminRoleDO> {

    /**
     * 查询管理员，所具备的角色
     * 
     * @param userId
     * @return
     */
    public List<Long> getRoleIdsByUserId(Integer userId);

    /**
     * 删除管理员的角色
     * 
     * @param userId
     * @param roleIds
     * @return
     */
    public int deleteByUserRoleId(@Param(value = "userId") Integer userId,
        @Param(value = "roleIds") List<Long> roleIds);

    /**
     * 批量新增管理员角色
     * 
     * @param list
     * @return
     */
    public int insertBatch(List<AdminRoleDO> list);

    /**
     * 删除管理员的所有角色
     * 
     * @param userId
     * @return
     */
    public int deleteByUserId(Integer userId);

    /**
     * 删除一组管理员的所有角色
     * 
     * @param userIds
     * @return
     */
    public int deleteByUserIds(List<Integer> userIds);

    /**
     * 删除某个角色对应的关系
     * 
     * @param roleId
     * @return
     */
    public int deleteByRoleId(Long roleId);

    /**
     * 删除某组角色对应的关系
     * 
     * @param roleIds
     * @return
     */
    public int deleteByRoleIds(List<Long> roleIds);

    public List<AdminRoleVO> selectVOByMap(Map<String, Object> params);

}